package com.ztorn.fiscale.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ztorn.common.core.annotation.Excel;
import com.ztorn.common.core.web.domain.BaseEntity;

/**
 * 退税申报批次对象 fiscale_refund_batch
 * 
 * @author ztorn
 * @date 2025-09-20
 */
public class FiscaleRefundBatch extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 批次ID */
    private Long batchId;

    /** 批次号 */
    @Excel(name = "批次号")
    private String batchNo;

    /** 总退税金额 */
    @Excel(name = "总退税金额")
    private BigDecimal totalAmount;

    /** 报关单数量 */
    @Excel(name = "报关单数量")
    private Integer declarationCount;

    /** 状态（pending-待申报，submitting-申报中，processing-税务审核中，approved-审批通过，refunding-退库处理中，completed-退税款已到账，failed-申报失败） */
    @Excel(name = "状态", readConverterExp = "pending=待申报,submitting=申报中,processing=税务审核中,approved=审批通过,refunding=退库处理中,completed=退税款已到账,failed=申报失败")
    private String status;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date submitTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;

    /** 税务局回执文件路径 */
    @Excel(name = "税务局回执文件路径")
    private String taxAuthorityReceipt;

    /** 错误信息 */
    @Excel(name = "错误信息")
    private String errorMessage;

    // 关联对象
    /** 退税申报明细列表 */
    private List<FiscaleRefundBatchDetail> batchDetails;

    public void setBatchId(Long batchId) 
    {
        this.batchId = batchId;
    }

    public Long getBatchId() 
    {
        return batchId;
    }
    public void setBatchNo(String batchNo) 
    {
        this.batchNo = batchNo;
    }

    public String getBatchNo() 
    {
        return batchNo;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setDeclarationCount(Integer declarationCount) 
    {
        this.declarationCount = declarationCount;
    }

    public Integer getDeclarationCount() 
    {
        return declarationCount;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }
    public void setCompleteTime(Date completeTime) 
    {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime() 
    {
        return completeTime;
    }
    public void setTaxAuthorityReceipt(String taxAuthorityReceipt) 
    {
        this.taxAuthorityReceipt = taxAuthorityReceipt;
    }

    public String getTaxAuthorityReceipt() 
    {
        return taxAuthorityReceipt;
    }
    public void setErrorMessage(String errorMessage) 
    {
        this.errorMessage = errorMessage;
    }

    public String getErrorMessage() 
    {
        return errorMessage;
    }

    public List<FiscaleRefundBatchDetail> getBatchDetails() {
        return batchDetails;
    }

    public void setBatchDetails(List<FiscaleRefundBatchDetail> batchDetails) {
        this.batchDetails = batchDetails;
    }
}